package com.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

public class CollectionDemo3 {
    public static void main(String[] args) {
        Collection c1 = new ArrayList();
        c1.add("java");
        c1.add("c++");
        c1.add("c");
        c1.add("c#");


        Collection c2 = new HashSet();
        c2.add("ios");
        c2.add("android");
        c2.add("java");

        System.out.println("c1 = " + c1);//c1 = [java, c++, c, c#]
        System.out.println("c2 = " + c2);//c2 = [java, android, ios]

        System.out.println("==========");


        /**
         * addAll(Collection<? extends E> c)
         * 添加指定集合的所有元素这个集合(可选操作)。
         */
        c2.addAll(c1);//把c1的元素放进c2
        System.out.println("c1 = " + c1);//c1 = [java, c++, c, c#]

        //这里是因为hashset不能保存重复数据，所以自动忽略java
        System.out.println("c2 = " + c2);//c2 = [c#, c++, java, c, android, ios]

        System.out.println("==========");

        /**
         * retainAll(Collection<?> c)
         * 只保留在这个集合的元素包含在指定的集合(可选操作)。
         * 也就是共有元素
         */
        Collection c3 = new ArrayList();
        c3.add("java");
        c3.add("c++");
        c3.add("c");
        c3.add("c#");


        Collection c4 = new HashSet();
        c4.add("ios");
        c4.add("android");
        c4.add("java");


        c3.retainAll(c4);//把c3和c4的共有元素存放到c里面
        System.out.println("c3 = " + c3);//c3 = [java]
        System.out.println("c4 = " + c4);//c4 = [java, android, ios]

        System.out.println("==========");

        /**
         * removeAll(Collection<?> c)
         * 删除这个集合的所有元素,也包含在指定的集合(可选操作)。
         */
        Collection c6 = new ArrayList();
        c6.add("java");
        c6.add("c++");
        c6.add("c");
        c6.add("c#");


        Collection c7 = new HashSet();
        c7.add("ios");
        c7.add("android");
        c7.add("java");

        c6.removeAll(c7);//删除c6和c7的共有元素，把剩余的元素保存在c6元素中
        System.out.println("c6 = " + c6);//c6 = [c++, c, c#]
        System.out.println("c7 = " + c7);//c7 = [java, android, ios]

        System.out.println("==========");

        /**
         * containsAll(Collection<?> c)
         * 返回 true如果这个集合包含指定集合的所有元素。
         */
        Collection c8 = new ArrayList();
        c8.add("java");
        c8.add("c++");
        c8.add("c");
        c8.add("c#");


        Collection c9 = new ArrayList();
        c9.add("ios");
        c9.add("android");
        boolean b = c8.containsAll(c9);
        System.out.println("c8里面是否包含c9= " + b);//c8里面是否包含c9= false



    }
}
